來練習幫 Google Sheets(電子試算表)增加一點內容吧。
今日要點:
》Spreadsheet Service 電子試算表服務範例
》新增一列標題列
》設定樣式
前一天我們簡單介紹了 Spreadsheet Service 的手冊與 Google 電子試算表的畫面對應,今天繼續來一些 API 程式使用範例。來練習幫 Google Sheets(電子試算表)增加一點內容吧。
今天先來介紹與練習一下新增一列標題列,設定標題列欄位的樣式,並且把標題列給凍結起來,標題的名稱就對應我們前面說明的鐵人賽 Demo 表裡的欄位。
我們試著把程式碼弄的很簡單,一樣先把一些參數先寫死比較好閱讀。
程式碼與執行結果對照如下圖:
我們程式大概分幾個部份
程式碼如下:
var gSheet; //工作表
var col_A = 1; //"服務名稱"
var col_B = 2; //"函式名稱"
var col_C = 3; //"函式名稱(中文)"
var col_D = 4; //"函式說明"
var col_E = 5; //"Request Url Params"
var col_F = 6; //"Response Body"
var col_G = 7; //"Sample"
//主要入口
function doGet18(e){
//如果沒有要用原有的 sheets 檔案, 自動建立一個新檔案
createSheets();
//設定第一列標題欄位
setTargetWorkbookColTitle();
//設定第一列欄位的樣式
setColTitleStyle()
}
建立初始的檔案
//建立初始的檔案
function createSheets() {
var ss = SpreadsheetApp.create('鐵人賽-API-文件-Demo-程式自動產生-'+ getTimestemp() , 200, 17);
gSheet = ss.getSheets()[0];
}
設定第一列標題欄位名稱
function setTargetWorkbookColTitle(){
setCellValue(1, col_A, "服務名稱")
setCellValue(1, col_B, "函式名稱")
setCellValue(1, col_C, "函式名稱(中文)")
setCellValue(1, col_D, "函式說明")
setCellValue(1, col_E, "Request Url Params")
setCellValue(1, col_F, "Response Body")
setCellValue(1, col_G, "Sample")
}
設定第一列欄位的樣式
function setColTitleStyle() {
//凍結第一列(row)
gSheet.setFrozenRows(1);
//設定字體大小、字體顏色、欄位背景顏色
gSheet.getRange('1:1').setFontSize(12);
gSheet.getRange('1:1').setFontColor('white');
gSheet.getRange('1:1').setBackground('#708090');
//設定欄位寛度
gSheet.setColumnWidths(3, 2, 200); //從第3欄開始後2欄, 設為寛度200
gSheet.setColumnWidths(5, 3, 250); //從第5欄開始後3欄, 設為寛度250
}
設定欄位值
function setCellValue(row, column, content){
var cell = gSheet.getRange(row, column, 1);//指定目的儲存格範圍
cell.setValue(content);
//另一種定位欄位的方式
//sheet.getRange('A1').setValue('編號');
}
以上就是建立 Google Sheets(電子試算表),新增一列標題列並設定樣式的範例。
今天就先這樣囉。
function getTimestemp(){
var time = new Date().toISOString();
var tzoffset = (new Date()).getTimezoneOffset() * 60000;
var localISOTime = (new Date(Date.now() - tzoffset)).toISOString().slice(0, 19);
var timestemp = localISOTime.replace(/-/g, "").replace(/:/g, "").replace("T", "-"); //20210711-151304
return timestemp;
}